package com.cnbot.toolkit.log.zlog;

import android.util.Log;

/**
 *  @项目名：  Test
 *  @包名：    com.cnbot.test.zlog
 *  @文件名:   ZLog
 *  @创建者:   ww
 *  @创建时间:  2019/5/29 14:23
 *  @描述：    打印日志，在终端打印并写入文件。注意，如果版本上线，应该关掉终端打印，只需写入文件就好
 */
public class ZLog {

	private ZLog() {}

	public static synchronized void allowSave() {
		ZLogProxy.get().allowSave(true);
	}

	public static synchronized void limitSave() {
		ZLogProxy.get().allowSave(false);
	}

	/**
	 * 日志打印初始化，设置根路径并启动数据读取线程
	 * 在Application中初始化
	 * @param strategy
	 */
	public static synchronized void init(ILogFileStrategy strategy) {
		ZLogProxy.get().init(strategy);
	}

	/**
	 * 日志打印初始化，设置根路径并启动数据读取线程
	 */
	public static synchronized void init() {
		init(new DefaultLogFileStrategy());
	}

	public static void e(String TAG, String text) {
		e(TAG, text, true);
	}

	public static void e(String TAG, String text, boolean logcat) {
		if (logcat) {
			Log.e(TAG, text);
		}
		ZLogProxy.get().add(TAG, text, LogType.ERROR);

	}

	public static void d(String TAG, String text) {
		d(TAG, text, true);
	}

	public static void d(String TAG, String text, boolean logcat) {
		if (logcat) {
			Log.d(TAG, text);
		}
		ZLogProxy.get().add(TAG, text, LogType.DEBUG);

	}

	public static void i(String TAG, String text) {
		i(TAG, text, true);
	}

	public static void i(String TAG, String text, boolean logcat) {
		if (logcat) {
			Log.i(TAG, text);
		}
		ZLogProxy.get().add(TAG, text, LogType.INFO);
	}

	public static void wtf(String TAG, String text) {
		wtf(TAG, text, true);
	}

	/**
	 * 
	 * @param TAG
	 * @param text
	 * @param logcat 是否需要将日志在终端打印
	 */
	public static void wtf(String TAG, String text, boolean logcat) {
		if (logcat) {
			Log.wtf(TAG, text);
		}
		ZLogProxy.get().add(TAG, text, LogType.WTF);
	}

}
